home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / wx / py / editwindow.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  9KB  |  258 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
  5. __cvsid__ = '$Id: editwindow.py 48373 2007-08-25 01:32:08Z RD $'
  6. __revision__ = '$Revision: 48373 $'[11:-2]
  7. import wx
  8. from wx import stc
  9. import keyword
  10. import os
  11. import sys
  12. import time
  13. import dispatcher
  14. from version import VERSION
  15. if 'wxMSW' in wx.PlatformInfo:
  16.     FACES = {
  17.         'times': 'Times New Roman',
  18.         'mono': 'Courier New',
  19.         'helv': 'Arial',
  20.         'lucida': 'Lucida Console',
  21.         'other': 'Comic Sans MS',
  22.         'size': 10,
  23.         'lnsize': 8,
  24.         'backcol': '#FFFFFF',
  25.         'calltipbg': '#FFFFB8',
  26.         'calltipfg': '#404040' }
  27. elif 'wxGTK' in wx.PlatformInfo and 'gtk2' in wx.PlatformInfo:
  28.     FACES = {
  29.         'times': 'Serif',
  30.         'mono': 'Monospace',
  31.         'helv': 'Sans',
  32.         'other': 'new century schoolbook',
  33.         'size': 10,
  34.         'lnsize': 9,
  35.         'backcol': '#FFFFFF',
  36.         'calltipbg': '#FFFFB8',
  37.         'calltipfg': '#404040' }
  38. elif 'wxMac' in wx.PlatformInfo:
  39.     FACES = {
  40.         'times': 'Lucida Grande',
  41.         'mono': 'Monaco',
  42.         'helv': 'Geneva',
  43.         'other': 'new century schoolbook',
  44.         'size': 13,
  45.         'lnsize': 10,
  46.         'backcol': '#FFFFFF',
  47.         'calltipbg': '#FFFFB8',
  48.         'calltipfg': '#404040' }
  49. else:
  50.     FACES = {
  51.         'times': 'Times',
  52.         'mono': 'Courier',
  53.         'helv': 'Helvetica',
  54.         'other': 'new century schoolbook',
  55.         'size': 12,
  56.         'lnsize': 10,
  57.         'backcol': '#FFFFFF',
  58.         'calltipbg': '#FFFFB8',
  59.         'calltipfg': '#404040' }
  60.  
  61. class EditWindow(stc.StyledTextCtrl):
  62.     revision = __revision__
  63.     
  64.     def __init__(self, parent, id = -1, pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.CLIP_CHILDREN | wx.SUNKEN_BORDER):
  65.         stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style)
  66.         self._EditWindow__config()
  67.         self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI, id = id)
  68.         dispatcher.connect(receiver = self._fontsizer, signal = 'FontIncrease')
  69.         dispatcher.connect(receiver = self._fontsizer, signal = 'FontDecrease')
  70.         dispatcher.connect(receiver = self._fontsizer, signal = 'FontDefault')
  71.  
  72.     
  73.     def _fontsizer(self, signal):
  74.         size = self.GetZoom()
  75.         if signal == 'FontIncrease':
  76.             size += 1
  77.         elif signal == 'FontDecrease':
  78.             size -= 1
  79.         elif signal == 'FontDefault':
  80.             size = 0
  81.         
  82.         self.SetZoom(size)
  83.  
  84.     
  85.     def __config(self):
  86.         self.setDisplayLineNumbers(False)
  87.         self.SetLexer(stc.STC_LEX_PYTHON)
  88.         self.SetKeyWords(0, ' '.join(keyword.kwlist))
  89.         self.setStyles(FACES)
  90.         self.SetViewWhiteSpace(False)
  91.         self.SetTabWidth(4)
  92.         self.SetUseTabs(False)
  93.         self.autoComplete = True
  94.         self.autoCompleteIncludeMagic = True
  95.         self.autoCompleteIncludeSingle = True
  96.         self.autoCompleteIncludeDouble = True
  97.         self.autoCompleteCaseInsensitive = True
  98.         self.AutoCompSetIgnoreCase(self.autoCompleteCaseInsensitive)
  99.         self.autoCompleteAutoHide = False
  100.         self.AutoCompSetAutoHide(self.autoCompleteAutoHide)
  101.         self.AutoCompStops(' .,;:([)]}\'"\\<>%^&+-=*/|`')
  102.         self.autoCallTip = True
  103.         self.callTipInsert = True
  104.         self.CallTipSetBackground(wx.WHITE)
  105.         self.CallTipSetForeground(wx.BLACK)
  106.         self.SetWrapMode(False)
  107.         
  108.         try:
  109.             self.SetEndAtLastLine(False)
  110.         except AttributeError:
  111.             pass
  112.  
  113.  
  114.     
  115.     def setDisplayLineNumbers(self, state):
  116.         self.lineNumbers = state
  117.         if state:
  118.             self.SetMarginType(1, stc.STC_MARGIN_NUMBER)
  119.             self.SetMarginWidth(1, 40)
  120.         else:
  121.             self.SetMarginType(1, 0)
  122.             self.SetMarginWidth(1, 10)
  123.  
  124.     
  125.     def setStyles(self, faces):
  126.         self.StyleSetSpec(stc.STC_STYLE_DEFAULT, 'face:%(mono)s,size:%(size)d,back:%(backcol)s' % faces)
  127.         self.StyleClearAll()
  128.         self.SetSelForeground(True, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT))
  129.         self.SetSelBackground(True, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
  130.         self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, 'back:#C0C0C0,face:%(mono)s,size:%(lnsize)d' % FACES)
  131.         self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, 'face:%(mono)s' % faces)
  132.         self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, 'fore:#0000FF,back:#FFFF88')
  133.         self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, 'fore:#FF0000,back:#FFFF88')
  134.         self.StyleSetSpec(stc.STC_P_DEFAULT, 'face:%(mono)s' % faces)
  135.         self.StyleSetSpec(stc.STC_P_COMMENTLINE, 'fore:#007F00,face:%(mono)s' % faces)
  136.         self.StyleSetSpec(stc.STC_P_NUMBER, '')
  137.         self.StyleSetSpec(stc.STC_P_STRING, 'fore:#7F007F,face:%(mono)s' % faces)
  138.         self.StyleSetSpec(stc.STC_P_CHARACTER, 'fore:#7F007F,face:%(mono)s' % faces)
  139.         self.StyleSetSpec(stc.STC_P_WORD, 'fore:#00007F,bold')
  140.         self.StyleSetSpec(stc.STC_P_TRIPLE, 'fore:#7F0000')
  141.         self.StyleSetSpec(stc.STC_P_TRIPLEDOUBLE, 'fore:#000033,back:#FFFFE8')
  142.         self.StyleSetSpec(stc.STC_P_CLASSNAME, 'fore:#0000FF,bold')
  143.         self.StyleSetSpec(stc.STC_P_DEFNAME, 'fore:#007F7F,bold')
  144.         self.StyleSetSpec(stc.STC_P_OPERATOR, '')
  145.         self.StyleSetSpec(stc.STC_P_IDENTIFIER, '')
  146.         self.StyleSetSpec(stc.STC_P_COMMENTBLOCK, 'fore:#7F7F7F')
  147.         self.StyleSetSpec(stc.STC_P_STRINGEOL, 'fore:#000000,face:%(mono)s,back:#E0C0E0,eolfilled' % faces)
  148.  
  149.     
  150.     def OnUpdateUI(self, event):
  151.         if self.AutoCompActive() or self.CallTipActive():
  152.             return None
  153.         
  154.         braceAtCaret = -1
  155.         braceOpposite = -1
  156.         charBefore = None
  157.         caretPos = self.GetCurrentPos()
  158.         if caretPos > 0:
  159.             charBefore = self.GetCharAt(caretPos - 1)
  160.             styleBefore = self.GetStyleAt(caretPos - 1)
  161.         
  162.         if charBefore and chr(charBefore) in '[]{}()' and styleBefore == stc.STC_P_OPERATOR:
  163.             braceAtCaret = caretPos - 1
  164.         
  165.         if braceAtCaret < 0:
  166.             charAfter = self.GetCharAt(caretPos)
  167.             styleAfter = self.GetStyleAt(caretPos)
  168.             if charAfter and chr(charAfter) in '[]{}()' and styleAfter == stc.STC_P_OPERATOR:
  169.                 braceAtCaret = caretPos
  170.             
  171.         
  172.         if braceAtCaret >= 0:
  173.             braceOpposite = self.BraceMatch(braceAtCaret)
  174.         
  175.         if braceAtCaret != -1 and braceOpposite == -1:
  176.             self.BraceBadLight(braceAtCaret)
  177.         else:
  178.             self.BraceHighlight(braceAtCaret, braceOpposite)
  179.  
  180.     
  181.     def CanCopy(self):
  182.         return self.GetSelectionStart() != self.GetSelectionEnd()
  183.  
  184.     
  185.     def CanCut(self):
  186.         if self.CanCopy():
  187.             pass
  188.         return self.CanEdit()
  189.  
  190.     
  191.     def CanEdit(self):
  192.         return not self.GetReadOnly()
  193.  
  194.     
  195.     def CanPaste(self):
  196.         if stc.StyledTextCtrl.CanPaste(self):
  197.             pass
  198.         return self.CanEdit()
  199.  
  200.     
  201.     def GetLastPosition(self):
  202.         return self.GetLength()
  203.  
  204.     
  205.     def GetRange(self, start, end):
  206.         return self.GetTextRange(start, end)
  207.  
  208.     
  209.     def GetSelection(self):
  210.         return (self.GetAnchor(), self.GetCurrentPos())
  211.  
  212.     
  213.     def ShowPosition(self, pos):
  214.         line = self.LineFromPosition(pos)
  215.         self.GotoLine(line)
  216.  
  217.     
  218.     def DoFindNext(self, findData, findDlg = None):
  219.         backward = not (findData.GetFlags() & wx.FR_DOWN)
  220.         matchcase = findData.GetFlags() & wx.FR_MATCHCASE != 0
  221.         end = self.GetLastPosition()
  222.         textstring = self.GetRange(0, end)
  223.         findstring = findData.GetFindString()
  224.         if not matchcase:
  225.             textstring = textstring.lower()
  226.             findstring = findstring.lower()
  227.         
  228.         if backward:
  229.             start = self.GetSelection()[0]
  230.             loc = textstring.rfind(findstring, 0, start)
  231.         else:
  232.             start = self.GetSelection()[1]
  233.             loc = textstring.find(findstring, start)
  234.         if loc == -1 and start != 0:
  235.             if backward:
  236.                 start = end
  237.                 loc = textstring.rfind(findstring, 0, start)
  238.             else:
  239.                 start = 0
  240.                 loc = textstring.find(findstring, start)
  241.         
  242.         if loc == -1:
  243.             dlg = wx.MessageDialog(self, 'Unable to find the search text.', 'Not found!', wx.OK | wx.ICON_INFORMATION)
  244.             dlg.ShowModal()
  245.             dlg.Destroy()
  246.         
  247.         if findDlg:
  248.             if loc == -1:
  249.                 wx.CallAfter(findDlg.SetFocus)
  250.                 return None
  251.             else:
  252.                 findDlg.Close()
  253.         
  254.         self.ShowPosition(loc)
  255.         self.SetSelection(loc, loc + len(findstring))
  256.  
  257.  
  258.